1. Field of the Invention
The invention relates to the field of printer systems and, in particular, to print controllers that use job despool tokens to control the release of print jobs stored in a rasterized job spool.
2. Statement of the Problem
Printing systems associated with data processing enterprises generally include a localized print controller within the printing system. The print controller controls overall operation of the printing system including, for example, host interfacing, page description language interpretation, rasterising, and lower level process control or interface features of the print engine associated with the printing system. Host interaction may include appropriate adapters for coupling the printing system to one or more host systems utilizing one or more communication media and one or more communication protocols. Raw print jobs are received by the printing system from one or more attached host systems. The raw print jobs are generally encoded in the form of a page description language such as PostScript, HP PCL, IPDS, etc. In addition, raw print jobs may be encoded as simple character streams (ASCII) with no page description formatting associated therewith. In whatever form the raw print job may be encoded or formatted, the print controller within the printing system interprets the received information to generate rasterized images of pages represented by the raw print job. Each rasterized page image generally comprises a 2-dimensional array of picture elements (“pixels”) that represent a corresponding formatted page of the raw print job. Each pixel may represent an encoded color value in accordance with the requirements of the particular raw print job encoding and the capabilities of the printing system on which the print job is to be printed. The process of interpreting the raw print job to generate corresponding rasterized page images is typically referred to as “ripping” and the sequences of rasterized pages may be referred to as a “ripped print job” or “rasterized print job”.
The print controller may store or buffer one or more ripped print jobs in accordance with storage capabilities of the particular architecture of a particular print controller. Each ripped print job comprises one or more rasterized images, each referred to as a “logical page” of the ripped print job. The print controller may then apply the logical pages to a print engine (sometimes also referred to as an “imaging engine” or as a “marking engine”). The print engine then interacts with the imaging process to mark the printable medium (e.g., the sheet of paper) with the logical pages provided by the print controller. For example, where the print engine is an electro photographic imaging engine (e.g., a laser print engine), a laser or other optical imaging system transfers each logical page rasterized image through photosensitive materials to corresponding pixels on paper formed as particles of toner electro statically transferred to the paper.
Print controllers may have many desired configurations. In one generalized configuration, a print controller may include a raw job handling system, an interpreter, and a ripped job handling system. The raw job handling system communicates with one or more host systems to receive raw print jobs. The raw print jobs may be transmitted using various protocols that the raw job handling system can understand and process. The raw job handling system queues the raw print jobs for subsequent transfer to the interpreter. The raw job handling system may include a raw job spool that stores raw print jobs, temporarily or long term. The interpreter (sometimes referred to as a “rasterizer”) receives and rips the raw print jobs received from the raw job handling system.
The ripped job handling system receives the ripped print jobs from the interpreter. Some of the ripped print jobs may be stored in a ripped job spool. The ripped job spool is a storage mechanism, such as a hard drive, generally used to store large print jobs. One example of print jobs that are typically spooled is continuous forms print jobs. Continuous forms print jobs are usually large print jobs that are spooled because of their size. Another example is print jobs that request to be spooled. Some jobs may request to be printed at a later time, such as at night or on a weekend, so these jobs may be stored on the ripped job spool.
The ripped print jobs that are not spooled in the ripped job handling system are queued up in a print queue. The print queue buffers ripped pages that will be subsequently transferred to the print engine in the order they are received. The print queue compensates for timing issues between the print engine and the interpreter, as the interpreter may take more processing time than the print engine. Thus, the print queue holds multiple print job pages so that the print engine is not waiting on the interpreter.
At some point, the ripped print jobs stored in the ripped job spool need to be released to the print queue and subsequently printed. Print controllers using ripped job spools are typically programmed by the manufacturer to release spooled print jobs according to a desired algorithm. For instance, the spooled print jobs may be released in the order they are received. It would be desirable to have a print controller that is more flexible in controlling the release of print jobs stored in the ripped job spool. Further, it would be desirable to allow a user to define the sequence or order of release of print jobs stored in the ripped job spool.